package com.authine.cloudpivot.ext.service.voucher;

import com.alibaba.cola.dto.SingleResponse;
import com.authine.cloudpivot.ext.dto.kingDee.request.KingDeeBasicRequest;
import com.authine.cloudpivot.ext.dto.pm.RecordingVoucherDTO;
import com.authine.cloudpivot.ext.dto.pm.RecordingVoucherDTO2;
import com.authine.cloudpivot.ext.dto.query.RecordingVoucherQuery;
import com.authine.cloudpivot.ext.dto.voucher.KingDeeBasicStats;
import com.authine.cloudpivot.ext.dto.voucher.Voucher;
import com.authine.mvp.app.launcher.dto.bo.response.BOList;

import java.util.List;

/**
* @Author: liwei
* @DateTime: 2021/7/27
* @Description: TODO
*/public interface RecordingVoucherPmService {


    /**
     * 根据 id 集合删除对应的
     * @param ids
     * @return
     */
    SingleResponse deleteRecordingVoucherByIds(List<String> ids);


    /**
     * PlatformCustomerInvoice ,GoldenTaxInvoice ,PlatformCustomerRedInvoice 保存发票凭证
     * @param recordingVoucherDTOList
     * @return
     */
    String saveRecordingAndInvoice(List<RecordingVoucherDTO> recordingVoucherDTOList);


    /**
     *  ServiceFeeTaxInvoice , PlatformVendorServiceFeeBlueTicket 平台供应商服务费蓝票
     * @param recordingVoucherDTO2s
     * @return
     */
    String saveServiceFeeInvoice(List<RecordingVoucherDTO2> recordingVoucherDTO2s);


    /**
     *  PlatformSupplierServiceFeeRedTicket 平台供应商服务费红票
     * @param recordingVoucherDTO2s
     * @return
     */
    String saveRedServiceFeeInvoice(List<RecordingVoucherDTO2> recordingVoucherDTO2s);

    /**
     * 凭证暂存页面按钮 生成凭证
     * @param voucher
     * @return
     */
    Integer pushVoucher(List<Voucher> voucher);

    /**
     * 根据组织名称 获取金蝶编码信息
     * @param request
     * @return
     */
    SingleResponse<List<KingDeeBasicStats>> listByCompanyName(KingDeeBasicRequest request);

    /**
     * 新建金蝶组织信息
     * @param params
     * @return 返回新建 id
     */
    SingleResponse<List<String>> saveKingDeeBasicStats(List<KingDeeBasicStats> params);

    /**
     * 更新金蝶组织信息
     * @param param
     * @return
     */
    SingleResponse updateKingDeeBasicStats(KingDeeBasicStats param);

    /**
     *
     * @param query
     * @return
     */
    SingleResponse<BOList> listRecordingVoucher(RecordingVoucherQuery query);

    /**
     * 新增维度
     * @param param
     * @return
     */
    SingleResponse<String> saveDimension(KingDeeBasicStats param);
}
